package com.tan.user.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.tan.common.domain.user.SysDictType;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tan.common.dto.user.DictTypeCreateDTO;
import com.tan.common.dto.user.DictTypeUpdateDTO;
import com.tan.common.query.user.DictTypeQuery;
import com.tan.common.vo.user.DictTypeVO;

import java.util.List;

/**
 * <p>
 * 字典类型表 服务类
 * </p>
 *
 * @author Tan
 * @since 2025-01-27
 */
public interface ISysDictTypeService extends IService<SysDictType> {

    /**
     * @param [dictTypeCreateDTO]
     * @author Tan-Bowen
     * @description 创建字典类型
     * @date 2025/2/18 17:35
     */
    void createDictType(DictTypeCreateDTO dictTypeCreateDTO);

    /**
     * @param [dictTypeUpdateDTO]
     * @author Tan-Bowen
     * @description 字典类型修改
     * @date 2025/2/19 10:54
     */
    void updateDictType(DictTypeUpdateDTO dictTypeUpdateDTO);

    /**
     * @param []
     * @author Tan-Bowen
     * @description
     * @date 2025/2/19 11:08
     */
    List<SysDictType> dictTypes();

    /**
     * @param []
     * @author Tan-Bowen
     * @description
     * @date 2025/2/19 11:08
     */
    List<DictTypeVO> dictTypeVOS();

    /**
     * @param [dictId]
     * @author Tan-Bowen
     * @description 删除字典类型
     * @date 2025/2/20 10:54
     */
    void delDict(Long dictId);

    /**
     * @param [query]
     * @author Tan-Bowen
     * @description
     * @date 2025/2/19 11:08
     */
    IPage<DictTypeVO> dictTypePages(DictTypeQuery query);
}
